package org.example.big_data.mapper;

import org.apache.ibatis.annotations.*;
import org.example.big_data.pojo.Article;

import java.util.List;

@Mapper
public interface ArticleMapper {

    //新增文章
    //注意：在新增文章时，需要设置文章的创建时间和更新时间
    //注意：在新增文章时，需要设置文章的创建用户和更新用户
    @Insert("insert into article (title,content,cover_img,state,category_id,create_user,create_time,update_time) values (#{title},#{content},#{coverImg},#{state},#{categoryId},#{createUser},#{createTime},#{updateTime})")
    void add(Article article);



    /**
     * //文章分页查询
     *     //注意：涉及到分页查询，还涉及到动态sql，根据前端是否传入categoryId和state参数(是否调用搜索功能，若是不传入那就是普通的查询)，需要有不同的sql，因此采用映射文件来写sql
     *     //记得在配置文件中：声明.xml文件的位置：
     *     //mybatis.mapper-locations=classpath:mapper/**.xml
     */
    List<Article> list(Integer userid, Integer categoryId, String state);


    //3 /article/detail根据id查询文章详情，即返回文章对象
    @Select("select * from article where id = #{id}")
    Article detail(Integer id);


    //4 根据id更新文章
    @Update("update article set title = #{title},content = #{content},cover_img = #{coverImg},state = #{state},category_id = #{categoryId},update_time = #{updateTime} where id = #{id}")
    void update(Article article);


    //5 根据id删除文章
    @Delete("delete from article where id = #{id}")
    void delete(Integer id);
}
